/**
 * 全局事件处理器
 * 负责处理全局的导航和通用事件
 */
class GlobalEventHandlers {
    constructor(appState) {
        this.appState = appState;
    }

    /**
     * 初始化全局事件绑定
     */
    init() {
        this.setupNavigation();
        console.log('[GlobalEventHandlers] 全局事件处理器初始化完成');
    }

    /**
     * 设置导航事件
     */
    setupNavigation() {
        document.querySelectorAll('.nav-item').forEach(item => {
            item.addEventListener('click', (event) => {
                const tabId = event.currentTarget.getAttribute('data-tab');
                this.handleTabSwitch(tabId);
            });
        });
        console.log('[GlobalEventHandlers] 导航事件设置完成');
    }

    /**
     * 处理标签页切换
     * @param {string} tabId - 标签页 ID
     */
    async handleTabSwitch(tabId) {
        try {
            this.appState.currentTab = tabId;
            
            // 使用新的页面管理器进行切换
            if (window.pageManager) {
                await window.pageManager.switchToPage(tabId);
            } else {
                // 备用方案：使用UIUtils
                await window.UIUtils.switchTab(tabId);
            }
            
            console.log(`[GlobalEventHandlers] 切换到页面: ${tabId}`);
        } catch (error) {
            console.error(`[GlobalEventHandlers] 切换页面失败: ${tabId}`, error);
        }
    }

    /**
     * 清理事件监听器
     */
    cleanup() {
        // 移除导航事件监听器
        document.querySelectorAll('.nav-item').forEach(item => {
            item.replaceWith(item.cloneNode(true));
        });
        console.log('[GlobalEventHandlers] 全局事件监听器已清理');
    }
}

// 导出到全局
window.GlobalEventHandlers = GlobalEventHandlers;
